package com.raymond.client.enums;

/**
 * 消息头
 *
 * @author :  raymond
 * @version :  V1.0
 * @date :  2021-07-13 17:40
 */
public enum MsgHead {
    /**
     * 消息总长度(含消息头及消息体)
     */
    TOTAL_LENGTH(4),
    /**
     * 命令或响应类型
     */
    COMMAND_ID(4),

    /**
     * 消息流水号,顺序累加,步长为1,循环使用（一对请求和应答消息的流水号必须相同）
     */
    SEQUENCE_ID(4);

    MsgHead(int length) {
        this.length = length;
    }

    private int length;

    public int getLength() {
        return length;
    }

    /**
     * 获取请求头长度
     * @return 请求头长度
     */
    public static int getHeadLength() {
//        return TOTAL_LENGTH.length + COMMAND_ID.length + SEQUENCE_ID.length;
        return 12;
    }
}
